package xgb




/*
.type EvtQueT:
*/
type EvtQueT struct{
	Cod EvtCodT
	FromClt bool
	EvtP any
}//EvtQueT





/*
.type EvtKeyPrsT/EvtKeyRlsT:
*/
type EvtKeyPrsT struct{
	KeyCode KeyCodT
	Time uint32
	Root uint32
	EvtWnd uint32
	ChildWnd uint32
	RootX int16
	RootY int16
	EvtX int16
	EvtY int16
	State uint16
	SameScreen bool
}//EvtKeyPrsT
type EvtKeyRlsT=EvtKeyPrsT




/*
.type EvtButPrsT/EvtButRlsT:
*/
type EvtButPrsT struct{
	Button ButCodT
	Time uint32
	Root uint32
	EvtWnd uint32
	ChildWnd uint32
	RootX int16
	RootY int16
	EvtX int16
	EvtY int16
	KeyButMsk KeyButMskT
	SameScreen bool
}//EvtButPrsT

type EvtButRlsT = EvtButPrsT




/*
.type EvtMotionT:
*/
type EvtMotionT struct{
	Hint bool
	Time uint32
	Root uint32
	EvtWnd uint32
	ChildWnd uint32
	RootX int16
	RootY int16
	EvtX int16
	EvtY int16
	KeyButMsk KeyButMskT
	SameScreen bool
}//EvtMotionT



/*
.type EvtEntT/EvtLvT:
*/
type EvtEntT struct{
	Detail EntLvDetT
	Time uint32
	Root uint32
	EvtWnd uint32
	Child uint32
	RootX int16
	RootY int16
	EvtX int16
	EvtY int16
	KeyButMsk KeyButMskT
	Mode EntLvModT
	Focus bool
	SameScreen bool
}//EvtEntT

type EvtLvT=EvtEntT




/*
.type EvtFocusInT/EvtFocusOutT:
*/
type EvtFocusInT struct{
	EvtWnd uint32
	Stat FocusStatT
	Mod FocusModT
}
type EvtFocusOutT = EvtFocusInT





/*
.type EvtExposeT:
*/
type EvtExposeT struct{
	Wnd uint32
	X uint16
	Y uint16
	Width uint16
	Height uint16
	Count uint16 //一个操作可能同时导致窗口中的多个矩形区域失效，进而产生一组多个EXPOSE事件。如Count为0，说明本事件为一组中的最后一个事件；如Count为n，则说明同组中本事件后还有至少n个事件。
}//EvtExposeT





/*
.type EvtGraphExposeT:
*/
type EvtGraphExposeT struct{
	Drawable uint32
	X uint16
	Y uint16
	Width uint16
	Height uint16
	Count uint16//参考EvtExposeT
	MajorOpcode uint16//导致本事件的图形请求的主操作码
	MinorOpcode uint16//导致本事件的图形请求的副操作码
}//EvtGraphExposeT
//与EvtNoExposeT事件相关：
//当可能产生图形Expose的图形请求产生了图形Expose时，生成本事件；
//当可能产生图形Expose的图形请求并未产生图形Expose时，生成EvtNoexposeT事件。
//相关图形请求还没实现，以后再验证吧。





/*
.type EvtNoExposeT:
*/
type EvtNoExposeT struct{
	Drawable uint32
	MajorOpcode uint16
	MinorOpcode uint16
}//EvtNoExposeT
//与EvtGraphExposeT事件相关：
//当可能产生图形Expose的图形请求产生了图形Expose时，生成EvtGraphExposeT事件；
//当可能产生图形Expose的图形请求并未产生图形Expose时，生成本事件。






/*
.type EvtObscureChgT:
*/
type EvtObscureChgT struct{
	Wnd uint32
	Stat ObscureChgStatT
}//EvtObscureChgT






/*
.type EvtCreatT:
*/
type EvtCreatT struct{
	Parent uint32
	EvtWnd uint32
	X int16
	Y int16
	Width uint16
	Height uint16
	Border uint16
	Direct bool //本字段为true则说明窗口完全由用户自己直接管理，窗口管理器不加干涉，缺点是拖动窗口最大最小化关闭窗口等操作都无法自动实现，需要用户自己手动实现。
}//EvtCreatT






/*
.type EvtDstryT:
*/
type EvtDstryT struct{
	EvtWnd uint32
	DstryWnd uint32
}//EvtDstry






/*
.type EvtUnmapT:
*/
type EvtUnmapT struct{
	EvtWnd uint32
	Wnd uint32
	FromConfig bool//当窗口的WinGrav为Unmap时，父窗口Resize时窗口会Unmap；此种Unmap生成的Unmap事件的本字段为true。
}//EvtUnmapT


/*
.type EvtMapT:
*/
type EvtMapT struct{
	EvtWnd uint32
	Wnd uint32
	Direct bool
}//EvtMapT






/*
.type EvtMapRqstT:
*/
type EvtMapRqstT struct{
	Parent uint32
	Wnd uint32
}//EvtMapRqstT






/*
.type EvtReparentT:
*/
type EvtReparentT struct{
	EvtWnd uint32
	Wnd uint32
	NewParent uint32
	X int16
	Y int16
	Direct bool
}//EvtReparentT






/*
.type EvtConfT:
*/
type EvtConfT struct{
	EvtWnd uint32
	Wnd uint32
	ZWnd uint32//Wnd的兄弟窗口ID，Wnd的位置被改为紧贴在ZWnd之上。为0则说明未改变Z轴位置。
	X int16
	Y int16
	Width uint16
	Height uint16
	Border uint16
	Direct bool
}//EvtConfT






/*
.type EvtConfRqstT??:
*/







/*
.type EvtGravT:
*/
type EvtGravT struct{
	EvtWnd uint32
	Wnd uint32
	X int16
	Y int16
}//EvtGravT






/*
.type EvtResizeRqstT:
*/
type EvtResizeRqstT struct{
	Wnd uint32
	Width uint16
	Height uint16
}//EvtResizeRqstT





/*
.type EvtCirculateT/EvtCirculateRqstT:
*/






/*
.type EvtProperT:
*/




/*
.type EvtSelClrT:
*/





/*
.type EvtSelRqstT:
*/






/*
.type EvtSelT:
*/






/*
.type EvtColormapT
*/








/*
.type EvtClientMsgT:
*/